package com.lollipop.synthential.java8.lambda.syntax;

import com.lollipop.synthential.java8.lambda.syntax.interfaces.*;

/**
 * @Author: J.K
 * @Date: 2021-02-14 22:21
 * @Description: Lambda的方法引用
 */
public class Syntax3 {
    public static void main(String[] args) {
        // 方法引用：
        // 可以快速的将一个Lambda表达式的实现指向一个已经实现的方法
        LambdaSingleReturnSingleParameter lambda1 = a -> change(a);

        // 语法：方法的隶属者::方法名
        // PS：
        // 1. 参数数量和类型一定要和接口中的定义的方法一致
        // 2. 返回值的类型也要和接口中定义的方法一致
        // 方法引用：引用了change方法的实现
        LambdaSingleReturnSingleParameter lambda2 = Syntax3::change;
    }

    private static int change(int a) {
        return a * 2;
    }
}
